package IO;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

public class IO流练习 {
    public static void main(String[] args) throws IOException {

        File file=new File("D:\\IO流练习\\1.txt");
        //文件与文件夹的属性测试
        System.out.println(file.length());//15获取文件的字节量大小
        System.out.println(file.exists());//true,判断指定文件文件是否存在
        System.out.println(file.isFile());//true,判断指定文件是否为文件
        System.out.println(file.isDirectory());//false,判断指定内容是否为文件夹
        System.out.println(file.getName());//1.txt,获取指定文本或文件的名字
        System.out.println(file.getParent());//D:\IO流练习,获取指定内容的上级
        System.out.println(file.getAbsolutePath());//D:\IO流练习\\1.txt,获取指定内容的绝对路径

        //2.2创建与删除
        file =new File("D:\\IO流练习\\4.txt");
        //会抛出IO异常,如果是不存在的指定路径会打印true/如果存在则打印false
        //第一次运行不存在但是下一 次运行就会存在因为它会自动创建就和i++的意思差不多
        System.out.println(file.createNewFile());
        file =new File("D:\\IO流练习\\m");
        System.out.println(file.mkdir()+"创建完成");//true是创建完成,/false则是已经有了,创建不存在的单层文件夹m
        file =new File("D:\\IO流练习\\a\\b\\c");
        System.out.println(file.mkdirs());//创建多层不存在的文件夹a/b/c
        //c被删除,删除文件或者空文件夹,可以删除指定的文件夹或者按照顺序从最后一个开始删
        System.out.println(file.delete());
        file =new File("D:\\IO流练习\\a");
        System.out.println(file.delete());//会返回false因为a文件夹里还有b文件夹
        file =new File("D:\\IO流练习\\2.txt");
        System.out.println(file.delete());//true ,删除2.txt成功

        //文件列表测试
        file =new File("D:\\IO流练习");
        String[]listName=file.list();
        System.out.println(Arrays.toString(listName));//获取D:\\IO流练习,里的所有文件和文件夹通过数组打印出来;

        File[] fs=file.listFiles();
        System.out.println(Arrays.toString(fs));//[D:\IO流练习\1.txt, D:\IO流练习\3.txt, D:\IO流练习\4.txt, D:\IO流练习\a, D:\IO流练习\m]

        System.out.println(fs[0].length());//15

    }
}
